class Solution:
def findTargetSumWays(self, arr: List[int], target: int) -> int:
dppos = []
for i in range(2001):
k = []
for i in range(len(arr) + 1):
k.append(-1)
dppos.append(k)
def trav(s, j):
if s == target and j == len(arr):
return 1
if j == len(arr):
return 0
if dppos[s + 1000][j] != -1:
return dppos[s + 1000][j]
dppos[s + 1000][j] = 0
dppos[s + 1000][j] += trav(s + arr[j], j+1)
dppos[s + 1000][j] += trav(s - arr[j] , j+1)
return dppos[s + 1000][j]
return trav(0, 0)
80A - Panoramix's Prediction | 1354B - Ternary String |
122B - Lucky Substring | 266B - Queue at the School |
1490A - Dense Array | 1650B - DIV + MOD |
1549B - Gregor and the Pawn Game | 553A - Kyoya and Colored Balls |
1364A - XXXXX | 1499B - Binary Removals |
1569C - Jury Meeting | 108A - Palindromic Times |
46A - Ball Game | 114A - Cifera |
776A - A Serial Killer | 25B - Phone numbers |
1633C - Kill the Monster | 1611A - Make Even |
1030B - Vasya and Cornfield | 1631A - Min Max Swap |
1296B - Food Buying | 133A - HQ9+ |
1650D - Twist the Permutation | 1209A - Paint the Numbers |
1234A - Equalize Prices Again | 1613A - Long Comparison |
1624B - Make AP | 660B - Seating On Bus |
405A - Gravity Flip | 499B - Lecture |